<?php
namespace app\admin\model;

class ArticleCat extends \think\Model{

    protected $table = "article_cat";
    
    /**
     * 返回分类下的所有子分类,  无限极没有分页, 重新组装数据结构, 有分类的深度
     * @param number $id 分类id
     * @return 
                 返回值       如没有数据,为空数组 array()
            Array
            (
                [0] => Array
                    (
                        [id] => 45        //分类id
                        [parent_id] => 0 //父级分类id
                        [cat_title] => '日用品' //分类标题
                        [cat_tree] => 0,   //分类树
                        [sort] => 1   //分类排序
                        [cat_staus] => 1  //分类状态
                        [depath] => 0   //分类深度
                    )
            
            )          
     */
    public static function allSubCat($id = 0){
        static $temp = [];
        $rs = self::where('parent_id', $id)->order('sort','desc')->select();
        foreach($rs as $val){
            $val = $val->getData();
            $val['depath'] = substr_count($val['cat_tree'], ",")-1;
            $temp[] = $val;
            self::allSubCat($val['id']);
        }
        return $temp;
    }
    
    /**
     * 创建自己的树结构
     * @param number $parent_id 父ID
     * @return string 树结构
     */
    public static function buildTree($parent_id = 0){
        $temp = ",0,";
        if( $parent_id!=0 ){
            $temp = self::where("id",$parent_id)->value("cat_tree").$parent_id.",";
        }
        return $temp;
    }
    
    /**
     * 验证是否可能删除分类
     * @param unknown $id  分类id
     * @return true(可以删除) or false;
     */
    public function checkDel($id){
       if( self::where('parent_id', $id)->find() )
           return com_error(['parent_id'=>'分类下有子分类，不能删除!']);
       
       if( Article::where('cat_id', $id)->find() )
           return com_error(['parent_id'=>'分类下有文章，不能删除!']);
       
       return true;
    }
}